Skip to content

v0.2.0 リリース#39

Merged
ktmage merged 100 commits into
masterfrom
development
Mar 1, 2026
Merged

v0.2.0 リリース#39
ktmage merged 100 commits into
masterfrom
development

Conversation

@ktmage

@ktmage ktmage commented Mar 1, 2026

Copy link
Copy Markdown
Owner

v0.2.0

追加

  • メッセージ編集 & チェックポイント復元
  • 推論(思考過程)表示
  • シェルコマンド実行
  • ファイル変更差分表示
  • セッションフォーク
  • 子セッションナビゲーション(サブタスク)
  • タスクツールコールのサブタスク表示
  • エージェントメンション(@ メンション)
  • セッション共有
  • Undo / Redo
  • 設定パネル
  • インラインポップアップのキーボードナビゲーション(Tab / 矢印キー)
  • Biome(リンタ / フォーマッタ)導入
  • DOMPurify による XSS 対策
  • CSS Modules によるコンポーネントスタイリング

変更

  • ハードコードされた SVG アイコンを react-icons/vsc に置換
  • UI コンポーネント構成を Atoms/Molecules/Organisms に再構築
  • Todo 表示をメッセージパースから session.todo() API に移行
  • OpenCode リポジトリ URL 更新(opencode-ai → anomalyco)
  • リポジトリ URL を opencode-gui に更新

修正

  • Markdown CSS を .markdown クラスにスコープして他要素へのスタイル漏れを防止

- Install @biomejs/biome@2.4.4 (exact version)
- Create biome.json with project-specific config
  - space indent, double quotes, semicolons, line width 120
  - CSS linting and formatting enabled
  - VCS integration with .gitignore
  - Organize imports via assist
- Add npm scripts: check, check:fix, format

Refs #1
- Configure rule severities in biome.json:
  - noDuplicateTestHooks: off (false positive in nested describes)
  - noExplicitAny, noNonNullAssertion, noArrayIndexKey: warn
  - useKeyWithClickEvents, noStaticElementInteractions: warn
- Add aria-hidden="true" to all decorative SVG icons (35 fixes)
- Add type="button" to all button elements (24 fixes)
- Fix noNonNullAssertedOptionalChain in test files (3 fixes)
- Fix noInvalidUseBeforeDeclaration: move handleEvent before useEffect
- Add biome-ignore for intentional dangerouslySetInnerHTML usage
- Auto-fix formatting and import ordering across all files

Result: 0 errors, 73 warnings (all intentionally warn-level)
All tests pass (154/154), build succeeds.

Refs #1
- Add 'Lint & Format check' step to test.yml workflow
- Update Code Style sections (EN/JA) with Biome instructions
- Update PR checklist to include 'npm run check'

Refs #1
…s, and session management

- Implemented `useLocale` hook for managing locale settings and strings.
- Created `useMessages` hook for handling chat messages and their parts.
- Developed `usePermissions` hook for managing tool permission requests.
- Added `useProviders` hook for managing AI model providers and their data.
- Introduced `useSession` hook for managing session states and events.
- Added comprehensive tests for each hook to ensure functionality and correctness.
- Created `AppContext` for centralized state management across the application.
- Implemented TodoHeader component to display summary and toggle list of todos.
- Created TodoView component to list individual todos with their status and priority.
- Added ChatHeader component for managing chat sessions with new session and toggle actions.
- Developed InputArea component for user input with file attachment and model selection features.
- Introduced MessageItem and MessagesArea components for displaying chat messages and interactions.
- Implemented PermissionView for handling permission requests in chat.
- Added SessionList component for managing chat sessions with delete and select functionality.
- Created ToolConfigPanel for configuring tool settings and managing locale options.
- Developed ToolPartView for displaying tool actions and outputs, including todo management.
… TextPartView components with functionality for message handling and context management
…ageItem, MessagesArea, TextPartView) to streamline codebase
…sistent styling and improved functionality across multiple components
…stent styling and improved functionality in ToolConfigPanel and ModelSelector
…I consistency and functionality across various components
- Create ContextIndicator.module.css for context indicator styles
- Create IconButton.module.css for icon button styles
- Create LinkButton.module.css for link button styles
- Create ListItem.module.css for list item styles
- Create StatusItem.module.css for status item styles
- Create StreamingIndicator.module.css for streaming indicator styles
- Create DiffView.module.css for diff view styles
- Create EmptyState.module.css for empty state styles
- Create FileAttachmentBar.module.css for file attachment bar styles
- Create HashFilePopup.module.css for hash file popup styles
- Create ModelSelector.module.css for model selector styles
- Create TodoHeader.module.css for todo header styles
- Create TodoView.module.css for todo view styles
- Create ChatHeader.module.css for chat header styles
- Create InputArea.module.css for input area styles
- Create MessageItem.module.css for message item styles
- Create MessagesArea.module.css for messages area styles
- Create PermissionView.module.css for permission view styles
- Create SessionList.module.css for session list styles
- Create ToolConfigPanel.module.css for tool config panel styles
- Create ToolPartView.module.css for tool part view styles
- Add css-modules.d.ts for TypeScript support of CSS modules
- Implemented MessageItem component to display user and assistant messages with editing capabilities.
- Created MessagesArea component to manage and display a list of messages, including checkpoint functionality.
- Added PermissionView component to handle permission requests with user actions.
- Introduced ToolConfigPanel for configuring tool settings and locale preferences.
- Developed ToolPartView to visualize tool actions and outputs, including support for todos and file edits.
- Styled components with corresponding CSS modules for improved UI consistency.
- Added SessionList component to manage and display user sessions with delete functionality.
…rovements

refactor: Issues #2#8 コード品質改善
ktmage added 29 commits March 1, 2026 06:34
サブエージェント子セッションナビゲーションと@agentメンション
セッション共有機能の追加
- Add unrevertSession() to OpenCodeConnection (session.unrevert SDK call)
- Add undoSession/redoSession message types to WebviewToExtMessage
- Add undoSession handler: revert session → send activeSession + messages
- Add redoSession handler: unrevert session → send activeSession + messages

Closes #9
- Add UndoIcon / RedoIcon SVG components
- Add onUndo, onRedo, canUndo, canRedo, isBusy props to ChatHeader
- Show undo/redo buttons when activeSession exists and not in child session
- Add handleUndo: extract user message text → setPrefillText → revert
- Add handleRedo: clear prefillText → unrevert
- Add canUndo / canRedo computed flags
- Stabilize handleEvent with activeSessionRef to prevent useEffect churn
- Add header.undo / header.redo locale keys (en/ja)
- Add ChatHeader undo/redo button tests (render, disabled, click, visibility)
- Add scenario 20: undo/redo lifecycle test covering undo → prefillText
  restoration, redo → prefillText clear, disabled states, and busy states
メッセージ履歴の Undo/Redo UI 追加
opencode-ai/opencode から anomalyco/opencode へリンクを修正。

対象:
- README.md (3箇所)
- CONTRIBUTING.md (2箇所)
- src/extension.ts (1箇所)

Closes #30
0.1.0 以降に追加された10機能を [Unreleased] セクションに記載。
Keep a Changelog 慣例に従いバージョンリンク参照を末尾に追加。
型定義パッケージをランタイム依存から開発時依存に移動。
アイコンライブラリ導入によるSVGハードコード除去
インラインポップアップ(#, @)の項目をTab/矢印キーで選択可能にする
THIRD_PARTY_NOTICES.md に react-icons (VS Code Icons subset) のライセンスを追加。
CHANGELOG の Unreleased に Keyboard navigation for inline popups と
SVG アイコン置換を追記。
ドキュメント修正・改善(OpenCode リンク修正、機能リスト更新、ライセンス追加)
リポジトリ名を opencode-gui に変更するための URL 更新
@ktmage ktmage merged commit 34fe6dc into master Mar 1, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant